namespace ScrumSprintMonitor.Infrastructure
{
	#region #using Directives

	using System;
	using System.ComponentModel;

	#endregion

	public interface IWorkItemAdapter : INotifyPropertyChanged
	{
		int Id { get; }
		WorkItemType Type { get; }
		WorkItemState State { get; }
		string Title { get; }
		double RemainingWork { get; }
		double DoneWork { get; }
		string Team { get; }
		string AssignedTo { get; }
		string ChangedBy { get; }
		DateTime ChangedDate { get; }

		void Initialize();
		void UpdateFrom(IWorkItemAdapter sourceAdapter);
	}

	public enum WorkItemType
	{
		Unknown,
		UserStory,
		SprintBacklogItem,
		Defect
	}

	public enum WorkItemState
	{
		NotDone,
		InProgress,
		Done
	}
}